import "@site/src/languages/highlight";

# Group

**描述：**

&emsp;&emsp;ECS游戏系统中给实体分组的类。

**类对象：**[Group Class](/docs/api/Class%20Object/Group)。

**继承自：**[Object](/docs/api/Class/Object)。

## count

**类型：** 只读成员变量。

**描述：**

&emsp;&emsp;组中实体的数量。

**签名：**
```tl
const count: integer
```

## each

**类型：** 函数。

**描述：**

&emsp;&emsp;对组中的每个实体调用一个函数。

**签名：**
```tl
each: function(self: Group, func: function(Entity): boolean): boolean
```

**参数：**

| 参数名 | 类型 | 描述 |
| --- | --- | --- |
| func | function | 对每个实体要调用的函数。在函数内部返回true可停止迭代。 |

**返回值：**

| 返回类型 | 描述 |
| --- | --- |
| boolean | 如果所有实体都被处理，则为false，如果迭代被中断，则为true。 |

## find

**类型：** 函数。

**描述：**

&emsp;&emsp;查找满足测试函数的第一个实体。

**签名：**
```tl
find: function(self: Group, func: function(Entity): boolean): Entity
```

**参数：**

| 参数名 | 类型 | 描述 |
| --- | --- | --- |
| func | function | 用于测试每个实体的函数，如果参数传入的实体为查找目标则应返回true，否则返回false。 |

**返回值：**

| 返回类型 | 描述 |
| --- | --- |
| Entity | 满足测试函数的第一个实体，如果没有找到，则返回nil。 |

## watch

**类型：** 函数。

**描述：**

&emsp;&emsp;监视组中实体的更改，每当添加或更改实体的属性（组件）时调用一个监测函数。

**签名：**
```tl
watch: function(self: Group, func: function(Entity)): Group
```

**参数：**

| 参数名 | 类型 | 描述 |
| --- | --- | --- |
| func | function | 添加或更改实体时要调用的监测函数。 |

**返回值：**

| 返回类型 | 描述 |
| --- | --- |
| Group | 当前的实体组本身，用于方法级连调用。 |